# Author:Xiao yang
# 时间：1009-week06

stu_id = [1001,1002,1003,1004,1008,1001,1009,1010,1001,]
# 思考？如何取出所有位置1001的index？
for i in stu_id:
    # 循环遍历stu_id的所有内容
    if i == 1001:
        # 判断如果元素为1001的时候，怎么取出索引值？
        print(stu_id.index(i))

## 一般方法？

## 枚举：因为list其实不仅有values的值，还有index索引，但for循环主要循环遍历其值，不遍历索引
# 因此，有了枚举的方法，同时遍历两者
# enumerate()
pop_values_list = []  # append方法经常用于新建列表
for index,item in enumerate(stu_id):
    # print(index,item)
    if item == 10001:
        print(index,item)
        pop_values_list.append(index)
print("我们想要删除pop()的值：",pop_values_list)


# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列，同时列出数据和数据下标，一般用在 for 循环当中。
# 枚举语法 ===>
# enumerate(sequence, [start=0])
# 参数
# sequence --> 一个序列、迭代器或其他支持迭代对象。
# start --> 下标起始位置。
# 返回值
# 返回一个枚举对象。 enumerate() 返回的迭代器的 __next__() 方法返回一个元组，
# 里面包含一个计数值（从 start 开始，默认为 0）和通过迭代 iterable 获得的值。

# 举例：
# 1.以下是普通的for 函数
i = 0
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for element in seasons:
    print(i,element,seasons[i])
    i+=1
# 输出：
# 0 Spring Spring
# 1 Summer Summer
# 2 Autumn Autumn
# 3 Winter Winter

print()

# 2.使用enumerate()函数
seasons = ['Spring', 'Summer', 'Autumn', 'Winter']
print(enumerate(seasons))
print(list(enumerate(seasons)))
print(list(enumerate(seasons, start=1)))

for i, element in enumerate(seasons, start=1):
    print(i, element)

# 输出：
# <enumerate object at 0x0000017FFD77B798>
# [(0, 'Spring'), (1, 'Summer'), (2, 'Autumn'), (3, 'Winter')]
# [(1, 'Spring'), (2, 'Summer'), (3, 'Autumn'), (4, 'Winter')]
# 1 Spring
# 2 Summer
# 3 Autumn
# 4 Winter